import { login } from '@/api/login'// 引入登录 api 接口
import { reg } from '@/api/reg' // 引入注册 api 接口
import { upd } from '@/api/updateInf';
import {message} from '@/api/message'
import {AddFri} from '@/api/AddFri'
import { Heartbeat } from '@/api/heartbeat'
import { init } from '@/api/Init'
import { initchat } from '@/api/initchat'

const user = {
  state: {
  },
  getters: {
  },
  // 处理同步函数 修改state中数据
  mutations: {
  },
  //处理异步函数 
  actions: {
    // 登录
    Login ({ commit }, userInfo) { // 定义 Login 方法，在组件中使用 this.$store.dispatch('user/Login') 调用
      const username = userInfo.username.trim()
      return new Promise((resolve, reject) => { // 封装一个 Promise
        login(username, userInfo.password,userInfo.ipLocation).then(response => { // 使用 login 接口进行网络请求
          commit('') // 提交一个 mutation，通知状态改变
          resolve(response) // 将结果封装进 Promise
        }).catch(error => {
          reject(error)
        })
      })
    },
    // 注册
    Reg ({ commit }, userInfo) { // 定义 Reg 方法，在组件中使用 this.$store.dispatch('user/Reg') 调用
      const username = userInfo.username.trim()
      return new Promise((resolve, reject) => { // 封装一个 Promise
        reg(username, userInfo.password).then(response => { // 使用 reg 接口进行网络请求
          commit('') // 提交一个 mutation，通知状态改变
          resolve(response) // 将结果封装进 Promise
        }).catch(error => {
          reject(error)
        })
      })
    },
    Upd ({commit},updInfo){
      // console.log(updInfo.imageUrl)
      return new Promise((resolve, reject) => { // 封装一个 Promise
        upd(updInfo.uid,updInfo.imageUrl,updInfo.name,updInfo.birdate,updInfo.sex,updInfo.token).then(response => { // 使用 reg 接口进行网络请求
          commit('') // 提交一个 mutation，通知状态改变
          resolve(response) // 将结果封装进 Promise
        }).catch(error => {
          reject(error)
        })
      })
    },
    Mess({commit},messageinfo){
      return new Promise((resolve, reject) => { // 封装一个 Promise
        message(messageinfo.inputText,messageinfo.myuid,messageinfo.touid,messageinfo.token).then(response => { // 使用 reg 接口进行网络请求
          commit('') // 提交一个 mutation，通知状态改变
          resolve(response) // 将结果封装进 Promise
        }).catch(error => {
          reject(error)
        })
      })
    },
    AdF({commit},Friendinfo){
      return new Promise((resolve, reject) => { // 封装一个 Promise
        AddFri(Friendinfo.uid,Friendinfo.inputname,Friendinfo.token).then(response => { 
          commit('') // 提交一个 mutation，通知状态改变
          resolve(response) // 将结果封装进 Promise
        }).catch(error => {
          reject(error)
        })
      })
    },
    Heartbt({commit},Heartinfo){
      return new Promise((resolve, reject) => { // 封装一个 Promise
        Heartbeat(Heartinfo.uid,Heartinfo.token).then(response => { 
          commit('') // 提交一个 mutation，通知状态改变
          resolve(response) // 将结果封装进 Promise
        }).catch(error => {
          reject(error)
        })
      })
    },
    Init({commit},initinfo){
      return new Promise((resolve, reject) => { // 封装一个 Promise
        init(initinfo.uid,initinfo.token).then(response => { 
          commit('') // 提交一个 mutation，通知状态改变
          resolve(response) // 将结果封装进 Promise
        }).catch(error => {
          reject(error)
        })
      })
    },
    Initchat({commit},initinfo){
      return new Promise((resolve, reject) => { // 封装一个 Promise
        initchat(initinfo.myuid,initinfo.touid,initinfo.token).then(response => { 
          commit('') // 提交一个 mutation，通知状态改变
          resolve(response) // 将结果封装进 Promise
        }).catch(error => {
          reject(error)
        })
      })
    }
  }
}
export default user
